52 research outputs found

    Are Smell-Based Metrics Actually Useful in Effort-Aware Structural Change-Proneness Prediction? An Empirical Study

    Get PDF
    Bad code smells (also named as code smells) are symptoms of poor design choices in implementation. Existing studies empirically confirmed that the presence of code smells increases the likelihood of subsequent changes (i.e., change-proness). However, to the best of our knowledge, no prior studies have leveraged smell-based metrics to predict particular change type (i.e., structural changes). Moreover, when evaluating the effectiveness of smell-based metrics in structural change-proneness prediction, none of existing studies take into account of the effort inspecting those change-prone source code. In this paper, we consider five smell-based metrics for effort-aware structural change-proneness prediction and compare these metrics with a baseline of well-known CK metrics in predicting particular categories of change types. Specifically, we first employ univariate logistic regression to analyze the correlation between each smellbased metric and structural change-proneness. Then, we build multivariate prediction models to examine the effectiveness of smell-based metrics in effort-aware structural change-proneness prediction when used alone and used together with the baseline metrics, respectively. Our experiments are conducted on six Java open-source projects with up to 60 versions and results indicate that: (1) all smell-based metrics are significantly related to structural change-proneness, except metric ANS in hive and SCM in camel after removing confounding effect of file size; (2) in most cases, smell-based metrics outperform the baseline metrics in predicting structural change-proneness; and (3) when used together with the baseline metrics, the smell-based metrics are more effective to predict change-prone files with being aware of inspection effort

    Single-dose pharmacokinetic and toxicity analysis of pyrrole–imidazole polyamides in mice

    Get PDF
    Purpose: Pyrrole–imidazole (Py-Im) polyamides are programmable, sequence-specific DNA minor groove–binding ligands. Previous work in cell culture has shown that various polyamides can be used to modulate the transcriptional programs of oncogenic transcription factors. In this study, two hairpin polyamides with demonstrated activity against androgen receptor signaling in cell culture were administered to mice to characterize their pharmacokinetic properties. Methods: Py-Im polyamides were administered intravenously by tail vein injection. Plasma, urine, and fecal samples were collected over a 24-h period. Liver, kidney, and lung samples were collected postmortem. Concentrations of the administered polyamide in the plasma, excretion, and tissue samples were measured using LC/MS/MS. The biodistribution data were analyzed by both non-compartmental and compartmental pharmacokinetic models. Animal toxicity experiments were also performed by monitoring weight loss after a single subcutaneous (SC) injection of either polyamide. Results: The biodistribution profiles of both compounds exhibited rapid localization to the liver, kidneys, and lungs upon injection. Plasma distribution of the two compounds showed distinct differences in the rate of clearance, the volume of distribution, and the AUCs. These two compounds also have markedly different toxicities after SC injection in mice. Conclusions: The variations in pharmacokinetics and toxicity in vivo stem from a minor chemical modification that is also correlated with differing potency in cell culture. The results obtained in this study could provide a structural basis for further improvement of polyamide activity both in cell culture and in animal models

    Comparison of PBO solvers in a dependency solving domain

    Full text link
    Linux package managers have to deal with dependencies and conflicts of packages required to be installed by the user. As an NP-complete problem, this is a hard task to solve. In this context, several approaches have been pursued. Apt-pbo is a package manager based on the apt project that encodes the dependency solving problem as a pseudo-Boolean optimization (PBO) problem. This paper compares different PBO solvers and their effectiveness on solving the dependency solving problem.Comment: In Proceedings LoCoCo 2010, arXiv:1007.083

    FCA-CIA: An approach of using FCA to support cross-level change impact analysis for object oriented Java programs

    No full text
    Background: Software Change Impact Analysis (CIA) is an essential technique in software engineering to identifying the potential influences of a change, or determining change entities to accomplish such a change. The results derived, in many cases, ambiguous for the software maintainers, introduces the problem of unclear starting point of these impacted entities. Objective: In an attempt to address this issue, this work proposes a novel approach for cross-level CIA, producing a ranked list of potentially impacted methods derived from class-level changes. Moreover, the approach of ranking the impact results is expected to be effective for maintainers to distinguish the probability of the impacted methods to be false-positives. Such results provide an eclectic approach for CIA. Method: The approach, FCA-CIA, uses formal concept analysis (FCA) to produce an intermediate representation of the program based on the static analysis of the source code. The representation is called Lattice of Class and Method Dependence (LoCMD). FCA-CIA takes the changed classes in the change set as a whole, and determines the reachable set from the changed classes on the LoCMD. Based on the hierarchical property of the LoCMD, the impacted methods are ranked according to the impact factor metric which corresponds to the priority of these methods to be inspected. Result: Empirical evaluations on four real-world software projects demonstrate the effectiveness of the impact factor metric and the FCA-CIA technique. The result shows the predicted impacted methods with higher impact factor values are more likely to be affected by the changes. Our study also shows that the FCA-CIA technique generates more accurate impact set than the JRipples and ICP coupling based CIA technique. (C) 2013 Elsevier B.V. All rights reserved.Background: Software Change Impact Analysis (CIA) is an essential technique in software engineering to identifying the potential influences of a change, or determining change entities to accomplish such a change. The results derived, in many cases, ambiguous for the software maintainers, introduces the problem of unclear starting point of these impacted entities. Objective: In an attempt to address this issue, this work proposes a novel approach for cross-level CIA, producing a ranked list of potentially impacted methods derived from class-level changes. Moreover, the approach of ranking the impact results is expected to be effective for maintainers to distinguish the probability of the impacted methods to be false-positives. Such results provide an eclectic approach for CIA. Method: The approach, FCA-CIA, uses formal concept analysis (FCA) to produce an intermediate representation of the program based on the static analysis of the source code. The representation is called Lattice of Class and Method Dependence (LoCMD). FCA-CIA takes the changed classes in the change set as a whole, and determines the reachable set from the changed classes on the LoCMD. Based on the hierarchical property of the LoCMD, the impacted methods are ranked according to the impact factor metric which corresponds to the priority of these methods to be inspected. Result: Empirical evaluations on four real-world software projects demonstrate the effectiveness of the impact factor metric and the FCA-CIA technique. The result shows the predicted impacted methods with higher impact factor values are more likely to be affected by the changes. Our study also shows that the FCA-CIA technique generates more accurate impact set than the JRipples and ICP coupling based CIA technique. (C) 2013 Elsevier B.V. All rights reserved

    using formal concept analysis to support change analysis

    No full text
    Software needs to be maintained and changed to cope with new requirement, existing faults and change requests as software evolves. One particular issue in software maintenance is how to deal with a change proposal before change implementation? Changes to software often cause unexpected ripple effects. To avoid this and alleviate the risk of performing undesirable changes, some predictive measurement should be conducted and a change scheme of the change proposal should be presented. This research intends to provide a unified framework for change analysis, which includes dependencies extraction, change impact analysis, changeability assessment, etc. We expect that our change analysis framework will contribute directly to the improvement of the accuracy of these predictive measures before change implementation, and thus provide more accurate change analysis results for software maintainers, improve quality of software evolution and reduce the software maintenance effort and cost. © 2011 IEEE.IEEE; IEEE Computer Society; Association for Computing Machinery (ACM); SIGART; SIGSOFTSoftware needs to be maintained and changed to cope with new requirement, existing faults and change requests as software evolves. One particular issue in software maintenance is how to deal with a change proposal before change implementation? Changes to software often cause unexpected ripple effects. To avoid this and alleviate the risk of performing undesirable changes, some predictive measurement should be conducted and a change scheme of the change proposal should be presented. This research intends to provide a unified framework for change analysis, which includes dependencies extraction, change impact analysis, changeability assessment, etc. We expect that our change analysis framework will contribute directly to the improvement of the accuracy of these predictive measures before change implementation, and thus provide more accurate change analysis results for software maintainers, improve quality of software evolution and reduce the software maintenance effort and cost. © 2011 IEEE
    corecore